<template>
	<view>
		<button class="eButton" @tap="check()">开始验证</button>
		<textarea v-model="msg"></textarea>
		<button class="eButton" @tap="clearConsole()">清屏</button>
		<div class="bgp"></div>
	</view>
</template>

<script>
const SimpleIFAAModule = uni.requireNativePlugin('Esand-SimpleIfaaModule');
// 阿里云市场接入，TODO 替换成您自己的APPCODE(切勿泄漏), 如何获取APPCODE,可参考：https://esandinfo.yuque.com/docs/share/13ad611e-b9c3-4cf8-a9a8-fe23a419312e?#
let ALIYUN_APPCODE = 'TODO'; // 阿里云网关APPCODE

// 从一砂云接入, 可参考文档： https://esandinfo.yuque.com/yv6e1k/aa4qsg/ghtqp7
let ES_APPCODE = 'TODO'; // 一砂云网关APPCODE
let ES_SECRET_KEY = 'TODO';// 一砂云网关密钥
export default {
	data() {
		return {
			msg:"logs",
		};
	},
	onLoad() {},
	methods: {
		check() {
			let _this=this;
			SimpleIFAAModule.sAuth(
				{
					//显示的标题
					reasonTitle: 'uni-Demo',
					//尝试一次以后返回的内容
					fallbackTitle: '请输入密码'
				},
				ret => {
					if (ret.code == '0') {
						// 判断是从一砂云接入还是阿里云接入
						let serverURL = "https://edis.esandcloud.com/gateways?APPCODE=" + ES_APPCODE + "&ACTION=ifaa/ES/sAuth";
						var SECRET_KEY = ES_SECRET_KEY;
						if (ALIYUN_APPCODE != '' && ALIYUN_APPCODE != 'TODO') {
							serverURL = 'http://simpleifaa.market.alicloudapi.com/ifaa/sAuth';
							SECRET_KEY = ALIYUN_APPCODE;
						}

						//服务器验证(为了保护APPCODE, 此段逻辑建议放在服务器端)
						uni.request({
							url: serverURL,
							method: 'POST',
							data: {
								ifaaMsg: ret.msg
							},
							header: {
								Authorization: 'APPCODE '+ SECRET_KEY,
								'X-Ca-Nonce': this.randomString(16), // 防重放攻击
								'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
							},
							success: res => {
								/* 返回值说明
								*     0000 成功
								*     2998  具体的异常描述
								*     2999  系统异常描述
								*     1999  服务异常描述
								*/
								if(res.data.code=="0000"){
									console.log('网络请求成功' + JSON.stringify(res.data));
									_this.msg+="获取结果成功"+ JSON.stringify(res.data);
								}
							},
							fail:res=>{
								_this.msg="请求失败:"+JSON.stringify(res);
							}
						});
					}else{
						_this.msg="code:"+ret.code+"msg:"+ret.msg;
					}
				}
			);
		},
		clearConsole(){
			this.msg="";
		},
		randomString(len) {
		　　len = len || 32;
		　　var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
		　　var maxPos = $chars.length;
		　　var randomStr = '';
		　　for (let i = 0; i < len; i++) {
		　　　　randomStr += $chars.charAt(Math.floor(Math.random() * maxPos));
		　　}

			randomStr = randomStr;
		　　return randomStr;
		}
	}
};
</script>

<style>
.eButton {
	margin-top: 40px;
	display: inline-block;
	background-color: #f0ad4e;
}
textarea {
	text-align: left;
	font-size: 23px;
	color: white;
	width: calc(100% - 4px);
	border: #333333 2px solid;
}
.bgp {
	display: inline-block;
	position: fixed;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	background-color: #c8c7cc;
	z-index: -1;
}
view{
	text-align: center;
}
</style>
